package game.controler;

import game.controler.gestionnaires.elementjeu.GestionnaireObjets;
import game.model.objets.Objet;
import java.util.ArrayList;

/**
 *
 * @author Gab'z
 */
public class Inventaire {

    private static Inventaire inventaire = null;
    private static ArrayList<String> inventaireObjets = null;
    private static ArrayList<String> inventaireFous = null;

    private Inventaire() {
        inventaireObjets = new ArrayList<String>(0);
        inventaireFous = new ArrayList<String>(0);
    }

    public static Inventaire getInventaire() {
        if (inventaire == null) {
            inventaire = new Inventaire();
        }
        return inventaire;
    }

    public ArrayList<String> getObjetsList() {
        return inventaireObjets;
    }

    public static void ajouterObjet(String id) {
        System.out.println("inventaire ajouter Objet id = " + id);
        GestionnaireObjets.getGobjets().getObjet(id).setVisible(false);
        inventaireObjets.add(id);
    }

    public static void retirerObjet(String id) {
        inventaireObjets.remove(id);
    }

    public boolean hasObjet(String id) {
        return inventaireObjets.contains(id);
    }

    public ArrayList<String> getFousList() {
        return inventaireFous;
    }

    public static void ajouterFou(String id) {
        inventaireFous.add(id);
    }

    public static void retirerFou(String id) {
        inventaireFous.remove(id);
    }

    public boolean hasFou(String id) {
        return inventaireFous.contains(id);
    }

    static void combinerObjets(String idObjet1, String idObjet2) {
        Objet objet1 = GestionnaireObjets.getGobjets().getObjet(idObjet1);
        Objet objet2 = GestionnaireObjets.getGobjets().getObjet(idObjet2);
        if (objet1.isCombinable(objet2)) {
            System.out.println("LES OBJETS SONT COMBINABLES !!");
            String idNewObjet = Objet.getObjetCombinaison(objet1, objet2);
            ajouterObjet(idNewObjet);
            retirerObjet(idObjet1);
            retirerObjet(idObjet2);
            System.out.print("Modification apportée à l'inventaire : ");
            System.out.println("( " + idObjet1 + " + " + idObjet2 + " ) =>" + idNewObjet);
        } else {
            Action.afficherInfo("Vous ne pouvez pas faire ça !");
        }
    }
}
